package com.meihuayishu.backend.service;

import com.meihuayishu.backend.dto.DivinationFeedbackDTO;
import com.meihuayishu.backend.entity.DivinationFeedback;

import java.util.List;
import java.util.Map;

/**
 * 占卜反馈服务接口
 */
public interface FeedbackService {
    
    /**
     * 保存反馈
     * @param feedback 反馈实体
     * @return 保存后的反馈实体
     */
    DivinationFeedback saveFeedback(DivinationFeedback feedback);
    
    /**
     * 获取用户反馈历史
     * @param userId 用户ID
     * @return 反馈DTO列表
     */
    List<DivinationFeedbackDTO> getFeedbackByUserId(Long userId);
    
    /**
     * 获取卦象准确率统计
     * @return 卦象名称 -> 准确率
     */
    Map<String, Double> getHexagramAccuracyRates();
    
    /**
     * 获取城市准确率统计
     * @return 城市名称 -> 准确率
     */
    Map<String, Double> getCityAccuracyRates();
    
    /**
     * 获取心情准确率统计
     * @return 心情状态 -> 准确率
     */
    Map<String, Double> getMoodAccuracyRates();
    
    /**
     * 分析反馈数据并更新权重
     */
    void analyzeAndUpdateWeights();
    
    /**
     * 获取用户准确率
     * @param userId 用户ID
     * @return 准确率（0-1）
     */
    double getUserAccuracyRate(Long userId);
}